Directory services form the basis of some distributed system architectures. These systems, however, have drawbacks that limit the usefulness. One drawback is that the systems are largely centralized. The centralized nature limits the robustness of the system. For example, in a centralized system a single point of failure can result in shutting down the entire system. Another drawback is that these systems may lack scalability. For example, the system may not be capable of adding and removing service agents to change the scale of the distributed system. These drawbacks limit the applications in which these distributed system architectures can be utilized.
Accordingly, it would be advantageous to provide a distributed system architecture that eliminates or reduces these drawbacks. Providing a more robust system would advantageously increase the reliability. Incorporating scalability into the system would allow it to be adjusted to meet changing needs. These additional capabilities would enable distributed system architectures to be advantageously utilized in new/additional applications.